package com.huatai.datacenter.service;

import com.huatai.datacenter.entity.messagequeuemonitor.*;

import java.util.*;

/**
 * 最新版消息队列监控服务（RMQ）
 * <a href="https://github.com/apache/rocketmq-dashboard/tree/master">...</a>
 *
 * @author lizhong
 */
public interface RMQMonitorService {

	/**
	 * 列出所有主题列表(不包括系统的主题) RMQ
	 *
	 * @param skipSysProcess  默认false
	 * @param skipRetryAndDlq 默认false
	 * @return 主题列表类
	 */
	Set<String> getTopicListRMQ(boolean skipSysProcess, boolean skipRetryAndDlq);

	/**
	 * 获取一个(topic, broker, consumerGroup)下lag消息 RMQ
	 *
	 * @param lagRecordQueryDTO 限定主题，限定group，限定broker，RMQ这里只有brokerName而不是地址
	 * @return lag消息
	 */
	PageResult getLagRecordListRMQ(LagRecordQueryDTO lagRecordQueryDTO);

	/**
	 * RMQ 进入页面首先展示所有主题所有消费组所有broker的消费情况(主题，broker，消费组地址，消费组名称，lag)
	 *
	 * @return (主题, 消费组, broker地址, broker名称, lag)
	 */
	PageResult listAllConsumeStatRMQ();
}
